#pragma once

#include "ofMain.h"
#include "ofxCvGui.h"
#include "ofxGraycode.h"

class testApp : public ofBaseApp{

	public:
		void setup();
		void process();
		void update();
		void draw();

		void keyPressed  (int key);
		void keyReleased(int key);
		void mouseMoved(int x, int y );
		void mouseDragged(int x, int y, int button);
		void mousePressed(int x, int y, int button);
		void mouseReleased(int x, int y, int button);
		void windowResized(int w, int h);
		void dragEvent(ofDragInfo dragInfo);
		void gotMessage(ofMessage msg);
		
		ofxGraycode::PayloadGraycode payload;

		ofTexture graycodeToBinary;
		ofFbo mean;
		ofFbo graycode;
		ofFbo uv;

		ofShader addBits;
		ofShader decodeUV;
		vector<ofImage> images;

		ofxCvGui::Builder gui;
};
